import 'package:Second/namedrouter/page/Form.dart';
import 'package:Second/namedrouter/page/Search.dart';
import 'package:flutter/material.dart';
import 'namedrouter/Tabs.dart';
import 'namedrouter/routes/Routes.dart';

void main() {
  runApp(MyApp());
}

//自定义组件
class MyApp extends StatelessWidget {
  final routes = {
    "/": (context) => Tabs(),
    "/form": (context, {arguments}) => FormPage(
          "我是静态传入的",
          arguments: arguments,
        ),
    "/search": (context, {arguments}) => SearchPage()
  };
  @override
  Widget build(BuildContext context) {
    // MaterialApp是根组件
    return MaterialApp(
      //配置启动显示页面，一般配了路由`/`后就不用了。
      // initialRoute: '/',
      //如果在routes里配置了`/`的路由，默认是该页面为主页面，所以这里就不需要写了，没配置需要写
      // home: Tabs(),
      // //命名路由传值不用routes，改用onGenerateRoute
      onGenerateRoute: onGenerateRoute, //单独放到文件里，也可以使用下面注释掉的
      // onGenerateRoute: (RouteSettings settings) {
      //   //获取的跳转命名路由名称
      //   final String? name = settings.name;
      //   //获取到配置的Page
      //   final Function pageContentBuilder = this.routes[name] as Function;

      //   if (pageContentBuilder != null) {
      //     //获取参数，参数key是传入时的名称，所以需要约定如下使用时候的传参示例
      //     //Navigator.of(context).pushNamed('/form', arguments: {"id": "动态传入的ID"});
      //     if (settings.arguments != null) {
      //       final Route route = MaterialPageRoute(
      //           builder: (context) =>
      //               pageContentBuilder(context, arguments: settings.arguments));
      //       return route;
      //     } else {
      //       final Route route = MaterialPageRoute(
      //           builder: (context) => pageContentBuilder(context));
      //       return route;
      //     }
      //   }
      // },
      theme: ThemeData(primaryColor: Colors.blue),
    );
  }
}
